<template>
	<view>
		<view class="goods-list">
			<view v-for="(goods,index) in goodsList" :key="index" @click="goGoodsDetail(goods)">
				<goods-item :goods="goods" @click="handlerLele"></goods-item>
			</view>
		</view>
	</view>
</template>

<script>
	import {goodsListData} from '@/api/goods_list_request.js'
	export default {
		data() {
			return {
				
				// get请求的参数 请对象
				queryObj:{
					query:'',
					cid:'',
					pagenum:1,
					pagesize:10
				},
				// 商品列表中的商品
				goodsList:[],
				// 总数量
				total:0,
				// 节流阀
				isLoading:false
			};
		},
		onLoad(options) {
			console.log(options);
			// cid    
			// obj.sex = undefined 
			// 
			this.queryObj.query = options.query || '';
			this.queryObj.cid = options.cid || '';
			
			// 调用获取商品列表的接口
			this.getGoodsList();
			
		},
		methods:{
			goGoodsDetail(goods){
				console.log('111');
				// 在此处只需要goods_id
				uni.navigateTo({
					url:'/subpkg/goods_detail/goods_detail?goods_id=' + goods.goods_id
				})
			},
			handlerLele(){
				console.log('lele');
			},
			async getGoodsList(callback){
				// 打开
				this.isLoading = true;
				// 只要数据请求完毕 就需要调用callback回弹
				callback && callback();
				
				// 查找对象
				const {data:res} = await goodsListData(this.queryObj);
				
				// 关闭
				this.isLoading = false;
				
				console.log(res);
				if(res.meta.status !== 200) return uni.$showMsg();
				// 为数据赋值
				this.goodsList = [...this.goodsList,...res.message.goods];
				this.total = res.message.total;
			}
		},
		onReachBottom() {
			console.log('111');
			// 数据是否请求完毕
			if(this.queryObj.pagenum * this.queryObj.pagesize >= this.total) return uni.$showMsg('数据加载完成！')
			
			// 在此处需要先 判断节流阀是开启还是关闭
			if(this.isLoading) return;
			
			
			// 页码值加1
			this.queryObj.pagenum += 1;
			 // 重新获取数据
			this.getGoodsList(); 
		},
		onPullDownRefresh() {
			console.log(222);
			// 重置关键数据
			this.queryObj.pagenum = 1;
			this.total = 0;
			this.isLoading = false;
			this.goodsList = [];
			// 重新发送请求
			this.getGoodsList(()=>uni.stopPullDownRefresh());
		}
		
		
	}
	/* 
	 1.当跳转到商品列表之后 获取数据  进行渲染
	  搜索历史 item 点击跳转 googs_list query=a  query=bb
	  home 楼层     query= 关键字
	  // /api/public/v1/goods/search
	  
	2.处理价格的格式
	   filters
	3.下拉触底
	 节流阀  isLoading  false  关闭节流阀
	 
	 请数据中操作
	 首次  打开节流阀  true
	 数据请求完毕关闭节流阀  false
	 
	 触发请求操作中去判断节流阀 onReachBottom 函数	 
	 判断节流阀是打开还是关闭  打开 发送请求   关闭不能发送
	 
	 正在请求是 不能再发送请求
	 当数据请求完毕时 再可以发送下一次请求
	 
	 当数据请求完毕之后 告诉用户数据请求完毕
	 total 312
	 页码 * 每一页的数据条数 >= 312 total 数据请求完毕
	 
	 4.下拉刷新
	 
	 下拉刷新有问题
	 在手机上下拉刷新的效果不能回归到原始状态
	 需要调用stopPullDownRefresh 让其回归到原始的位置
	 
	 getGoodsList函数中调用stopPullDownRefresh 
	 getGoodsList是下拉刷新和上拉触底都在使用 stopPullDownRefresh 不是都需要调用的
	 下拉刷新需要调用stopPullDownRefresh
	 上拉触底不需要调用stopPullDownRefresh
	 
	 可以不将stopPullDownRefresh作为一个参数传递getGoodslist
	 在调用getGoodslist时传递stopPullDownRefresh 就调用
	 不传递 undefined
	 
	 5.跳转到商品详情页面
	 url  /subpkg/goods_detail/goods_detail
	 商品列表跳转到商品详情需要传递goods_id
	 
	 */
</script>

<style lang="scss">
.goods-list{
	
}
</style>
